The present invention pertains generally to the field of computer networking. More particularly, the present invention pertains to software applications used for configuring networking hardware installed on a computer system.
Computer networks can be arranged in numerous configurations and in a variety of network types. Some of the most popular types of networks are Ethernet (coaxial cable or twisted-pair cable), token ring, Fiber Distributed Data Interface (FDDI), Frame Relay, Integrated Services Digital Network (ISDN), X.25, and Synchronous Data Link Control (SDLC). Typically, these networks are arranged in local area networks (LANs) and wide area networks (WANs). Usually, LANs are distinguished from WANs based upon the geographical area they cover and sometimes the number of users connected to the network. For example, a group of personal computers (PC) in a home or single business site (location) usually communicate with each over a LAN. Groups of PCs that are at remote locations from one another, such as those in different homes, different companies, or different branch offices of the same company, typically communicate with each other over a WAN. Most WANs typically require significant resources to provide service to a large number of users spread over a vast geographical area causing a WAN to be relatively expensive to build and maintain.
Some users utilize the Internet for virtual private networking to avoid the costs of a true private WAN network and or paying for long distance communication bills. In essence, virtual private networking entails encrypting and decrypting IP packets for transport across the Internet. In some virtual private networks (VPNs), the payload portion of an IP packet is encrypted for transport across the Internet. The header information is left intact so that routers can forward the packet as it traverses the Internet. In other VPNs, an entire IP packet is encrypted and then encapsulated into new IP packets for transport across the Internet.
One use of the VPN is that it allows a mobile computer system (e.g., a Laptop) to be connected to a remote LAN. Typically, a user of the mobile computer system initiates a local call to an Internet Service Provider (ISP) and establishes an Internet session. Then, the mobile computer system sends an Internet message via the Internet to the remote LAN. The mobile system and the remote LAN then engage in a security protocol or handshaking to verify the user is an authorized user permitted to have access to the LAN. Once it is established the user is authorized to have access to the second LAN, a VPN is established, allowing the user and the remote computer system to access data stored within the LAN.
Windows 95(copyright) and Windows 98(copyright) operating systems, however, do not provide native support for several types of VPNs. Therefore, a VPN software package is typically required to be installed in a system to provide for such specialized networking needs. xe2x80x9cVirtualxe2x80x9d network interface cards (NICs) are often installed as part of a VPN software package. By way of background, xe2x80x9crealxe2x80x9d NICs are those associated with one or more pieces of hardware installed on the computer. They include PCI NIC cards, ISA NIC cards, PCMCIA NIC cards, USB NIC cards, etc. A xe2x80x9cvirtualxe2x80x9d NIC is one that is not associated with any hardware. Some examples of xe2x80x9cvirtualxe2x80x9d NICs include xe2x80x9cDial-Up Networking,xe2x80x9d xe2x80x9cInternet Connection Sharing,xe2x80x9d and xe2x80x9cVPN.xe2x80x9d Virtual NICs are well known in the art and are a common way of providing specialized networking support.
Windows 95(copyright) and Windows 98(copyright) operating systems store information about each NIC installed on the system in the system registry regardless of whether the NIC is xe2x80x9crealxe2x80x9d or xe2x80x9cvirtual.xe2x80x9d Thus, problems may arise when network configuration software or network monitoring software are interested in dealing with information specific to each NIC card. For instance, using conventional techniques, network configuration software or network monitoring software would be able to identify the NICs that are installed in the computer system by examining each sub-key under the xe2x80x9cNetxe2x80x9d class registry key for the system""s current services, and getting its xe2x80x9cDeviceDescxe2x80x9d string value. However, conventional network configuration software or network monitoring software would not be able to distinguish whether a NIC is xe2x80x9crealxe2x80x9d or xe2x80x9cvirtual.xe2x80x9d
One solution is to maintain a list of known xe2x80x9cvirtualxe2x80x9d NICs that the network configuration software can check against. In the past, when there were only a small number of xe2x80x9cvirtualxe2x80x9d NICs that were likely to be found on a computer, it was feasible for network configuration software to keep track of such a list. However, that approach is undesirable because, as VPNs gain popularity, more and more new xe2x80x9cvirtualxe2x80x9d NICs are entering the marketplace. Consequently, network configuration software and network monitoring software having the latest list of known xe2x80x9cvirtualxe2x80x9d NICs need to be constantly updated.
Therefore, what is needed is a method that allows a system administrator or end-user to more easily monitor or modify the settings for xe2x80x9crealxe2x80x9d NICs installed on a client computer. What is also needed is a method that allows users to differentiate between xe2x80x9crealxe2x80x9d NICs and xe2x80x9cvirtualxe2x80x9d NICs installed on a computer system.
Accordingly, the present invention provides a method of determining whether a network interface card entry within the system registry of a Windows(trademark)-based operating system pertains to xe2x80x9crealxe2x80x9d physical hardware or to a xe2x80x9cvirtualxe2x80x9d device. In one particular embodiment, the present invention is implemented as part of a network configuration software or network monitoring software and allows users or system administrators to more easily monitor and modify the settings for network interface cards installed on a computer system running on Windows 95(copyright) or Windows 98(copyright) operating systems.
In accordance with one embodiment of the present invention, the method includes the steps of: (1) opening the xe2x80x9cHKEY_LOCAL_MACHINE System CurrentControlSet Services Class Netxe2x80x9d key entry of the system registry; (2) examining each of the sub-keys for the xe2x80x9cNetxe2x80x9d key, and find one with a xe2x80x9cDriverDescxe2x80x9d string value matching a NIC; (3) opening the xe2x80x9cNdixe2x80x9d key under the matching sub-key; (4) getting the xe2x80x9cDeviceIDxe2x80x9d string value under the xe2x80x9cNdixe2x80x9d key; and, (5) searching the xe2x80x9cDeviceIDxe2x80x9d string for a backslash xe2x80x9c xe2x80x9d character. If the backslash character is found, then it can be concluded that the network interface card entry is associated with xe2x80x9crealxe2x80x9d physical hardware. Otherwise, it can be concluded that the network interface card entry is associated with a xe2x80x9cvirtualxe2x80x9d device.
Embodiments of the present invention include the above and further include a computer readable medium having contained therein computer readable codes for causing a computer system running on a Windows(trademark)-based operating system to perform a method of determining whether a network interface card entry of a system registry of the computer system is associated with physical hardware device, the method comprising the steps of: (1) opening a Net key entry of the system registry wherein the Net key entry includes a plurality of sub-key entries and wherein the Net key entry stores registry entries pertinent to network interface cards; (2) opening a respective one of the plurality of sub-key entries; (3) examining a driver description string stored within the respective sub-key entry; (4) provided that a value stored as part of the driver description string matches the network interface card entry, opening an xe2x80x9cNdixe2x80x9d key under the respective sub-key entry and searching for a backslash character within a device identification string under the xe2x80x9cNdixe2x80x9d key, wherein presence of the backslash character indicates that the network interface card entry is associated with physical hardware device.